草庐IT

javascript - 用javascript定义一个长字符串

全部标签

ruby - 如何在 Ruby 中创建 IO 的自定义子类?

我如何创建自己的类来代替IO,例如为某些接受类似IO参数的代码重定向/捕获输入/输出?IO本身似乎耦合到OS文件描述符,我所知道的唯一一个模仿它而不对其进行子类化的类是StringIO,它似乎只是重新实现了整个接口(interface)。我认为该语言会提供一种直接的方法来执行此操作,但我找不到有关该主题的任何信息。是否有像Enumerable那样在一些基元之上实现接口(interface)的混合宏? 最佳答案 我怀疑我遗漏了什么,但假设情况并非如此......为什么子类化不是一种选择?你能不能只重写IO中需要表现不同的部分?clas

ruby-on-rails - 是否有返回第一个 truthy 映射值的惯用 ruby​​/rails 方法?

我有一个对象数组,其中一些响应:description,我想从第一个对象中获取真实描述的描述。我可以这样做:objects.detect{|o|o.try(:description)}.description或者这个:objects.map{|o|o.try(:description)}.detect{|o|o}但第一个不是DRY(描述在那里两次),第二个在找到值之前遍历整个数组。ruby标准库或Rails的扩展中是否有任何东西可以让我做这样的事情:objects.detect_and_return{|o|o.try(:description)}我知道我可以很容易地编写它,但标准库足够

ruby - 如何在 FactoryGirl 工厂上定义方法?

如何定义一个正常的方法用于我的FactoryGirl工厂之一?例如:FactoryGirl.definedodefsilly_horse_nameverbs=%w[brunchesdribbleshagglesmeddles]nouns=%w[landmineshamletsvandalspiglets]"#{verbs.sample}with#{nouns.sample}".titleizeendfactory:racehorsedoname{silly_horse_name}#eg,"BruncheswithLandmines"after_builddo|horse,evaluat

ruby-on-rails - 使用电子表格 gem 的自定义颜色

我需要使用自定义color和pattern_fg_color(HEX:0x00adb1,RGB:0,173,177)。我听从了here的建议,但它对我没有用(我在另一个基于Spreadsheetgem的库中使用它):Spreadsheet::Excel::Internals::SEDOC_ROLOC.update(enterprise:0x00adb1)Spreadsheet::Column.singleton_class::COLORS测试示例:Spreadsheet::Format.new(pattern_fg_color::enterprise)我收到以下错误:unknownco

Ruby 字符串可变性

这可能是一个有点菜鸟的问题,我最近一直在努力提高ruby​​的水平,并开始阅读精彩的TheRubyProgrammingLanguage.提到的一点是字符串文字被认为是可变的,因此在循环中最好使用变量然后使用文字,因为新字符串将在每次迭代时实例化。我的问题是为什么?一开始以为是插值的原因,但是symbols是不可变的,支持插值。来自静态背景,这对我来说并没有多大意义。编辑:看完thenduks回答,我想我可能有。AFAIK,像Java或C#这样的语言没有破坏性的字符串方法(它们使用大写,但不是大写!)。因为像upcase这样的东西!或对此不能100%确定,另一种可能性是它发生在编译时实

ruby - 为 ruby​​ 套接字定义的 MSG_ 选项在哪里?

在Ruby类Socket::recv的文档中,提到了第二个选项参数“flag”,据说它是零个或多个MSG_选项。我检查了几个不同的站点,但无法找到MSG_选项。谁能指出这些标志的文档? 最佳答案 除了前面的Socket::之外,它们与CBSD套接字堆栈中相应的#define同名。(作为记录,为了回答您提出的确切问题,我应该在Ruby源代码树中说"inext/socket/socket.c"。)所以:>>require'socket'=>true>>Socket::MSG_PEEK=>2您可能可以通过键入man2recv来查看,但您可

ruby-on-rails - 使用 utf8 字符的 ruby​​ 正则表达式在 rails 中的奇怪行为

使用非标准utf-8字符时,我的验证正则表达式之一出现问题。因此,我进行了一些实验,发现ruby​​正则表达式在rails环境或普通ruby​​中表现不同。我用中文字符串在这里发布我的实验。在ruby中“纯”:string="運動會"putsstring[/\A[\w]*\z/]=>match"運動會"-ok在rails上:#coding:utf-8task:test=>:environmentdostring="運動會"putsstring[/\A[\w]*\z/]end$raketest=>nothing-notok如果我省略#coding:utf-8,它将带有invalidmul

Ruby - 如何在不同线程上的每个数组元素上运行一个方法?

所以我有一个包含40000个元素的数组,我希望对每个元素运行一个方法。为了减少花费的时间,我正在考虑在多个线程上运行它。也许将数组拆分为多个数组并在不同的线程或其他东西上运行。但我不知道如何开始。假设数组是foo[],调用的方法是bar()。bar()返回一个字符串。代码执行后,我希望能够将所有字符串合并/添加到一个大字符串中。有没有办法做到这一点?我试图让我的问题尽可能简单,但如果您想了解更多信息,请告诉我。提前致谢! 最佳答案 听起来您想要类似pmap函数的东西。有一个名为peach的ruby库它在native数组上提供了pma

ruby - 将 Ruby gem 加载到用户定义的命名空间中

如果一个gem定义了与我编写的某些代码冲突的顶级类,是否可以要求gem的所有类都分组在我可以定义的模块中?例如,如果unsafe_gem定义了一个类:classWord#...somecodeend我需要这样的东西:classWord#Mywordclass.endmoduleSafeContainer#Thisobviouslydoesn'twork#(i.e.thegemstilldefines::Word).require'unsafe_gem'end这样我就可以区分:Word.new#=>TheclassIdefined.SafeContainer::Word.new#=>Th

ruby-on-rails - Carrierwave - "uploading"来自字符串的文件

我网站中的用户可以上传自己的模特照片或从图库中选择。当用户从库中选择时,我将文件名作为字符串发送到服务器{file:{url:'url.jpg'}}。我还没有找到carrierwave可以只更新模型文件而不上传它的方法。我可以在我的模型中编写一个条件来检查该参数是否存在,然后是model.file=File.open('str.jpg')。从安全角度来看,这不好吗?我如何才能“上传”文件,或仅更新文件属性,以引用服务器上已有的文件?谢谢! 最佳答案 您使用File.open的解决方案可行,但您应该使用File.basename验证该